home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-09-27 | 52.1 KB | 1,220 lines |
- ---------------------------------------------------------------------------
-
- A m o k E d
- ===================
-
- Version 1.30
-
- ---------------------------------------------------------------------------
-
- AmokEd V1.30 © Copyright 1990-1992 Hartmut Goebel,
- Alle Recht vorbehalten
-
- Das gesamte Paket ist Freeware. Es darf unter folgenden Bedingungen
- beliebig oft kopiert und weitergegeben werden:
-
- · Das Paket vollständig und unverändert bleibt (Der Source-Code ist
- optional, siehe auch Anmerkung unter Punkt 2: Umfang des Paketes)
- · Mit der Weitergabe des Pakets in keiner Weise ein Gewinn erzielt
- wird. Ausdrücklich wird die Weitergabe auf Diskette, die mehr als
- DM 5.00 kosten verboten.
- · Spenden sind willkommen
- · Es ist ausdrücklich verboten, das Programm oder damit erzeugte
- Programme oder Daten direkte oder indirekt militärisch zu nutzen.
- · Folgenden Personen bzw. Firmen ist es ausdrücklich verboten,
- dieses Paket oder Teile hiervon weiterzugeben:
- Fa. Stefan Ossowski, Fa. Karstadt
-
- Hartmut Goebel
- Aufseßplatz 5 UseNet: hartmut@oberon.nbg.sub.org
- (W-)8500 Nürnberg 40 Z-Netz: HARTMUT@ASN.ZER
- Deutschland Fido: Hartmut Goebel of 2:244/81.1
-
-
- Mein Dank gilt:
- - Matthew Dillon: für seine genialen DME
- - Volker Rudolph: für seine zahlreichen Tips, Routinen und die
- moralische Unterstützung
- - Werner Speer: für die Starthilfe in Form des ersten Parsers
- - Tobias Ruland: für die Unterstützung in Sachen Assembler
- - Thomas Wagner: für's kreatives Beta-Testen
- - Jürgen Walleneit: für's Disk-Icon
- - hab ich jemand vergessen? Dann auch Dir Dank!
-
- ---------------------------------------------------------------------------
-
- Inhalt
-
- I Einleitung
- Starten, Die Konfigurationsdatei
- II Makros
- III Tasten belegen
- IV Das Verhalten bein Laden/speichern von Dateien
- V Workbench Unterstützung
- VI ARexx Unterstützung
- VII Der Application-Port
-
- ----------------------
- ---------- I ----------
- ---------- Einleitung ----------
- ----------------------
-
- AmokEd ist ein frei programmierbarer Editor, der auf dem Konzept
- des bekannten DME vom Matthew Dillon basiert, aber unter anderem
- viele Fähigkeiten von AmigaOS 2.0 unterstützt. Er verfügt über einige
- Fähigkeiten, die ihn zu einem noch mächtigeren (Programmier-)
- Werkzeug machen. Hier ein kurzer Überblick:
-
- - Eine reichhaltige Kommandosprache, deren Befehle sowohl direkt
- eingegeben, als auch auf Tasten gelegt werden können. (Jede Taste
- kann durch Qualifier und Maustasten mit 128 verschiedenen Macros
- belegt werden.) Jede Tasten und Maus-Tasten Kombination ist
- belegbar.
-
- - Eine ARexx-Schnittstelle ermöglicht eine noch vielfältigere
- Programmierung von AmokEd durch externe Makros sowie die Steuerung
- anderer Programme aus AmokEd heraus.
-
- - Ein spezieller 'ApplicationPort' - basierend auf ARexx - ermöglicht
- sehr leicht anwendungsbezogene Erweiterungen, die den Editor selbst
- nicht unnötig aufblähen sollen.
-
- - Variablen ermöglichen eine fexible Macroprogrammierung (z.B. können
- auch Macros in Variablen abgelegt werden), ENV:-Variablen werden
- unterstützt.
-
- - Vom Benutzer definierbare Menüs, die mit allen Macros oder
- Variablen belegt werden können. Auch Menupunkte mit sog. Checkmark
- sind möglich.
-
- - Schnelles Scrolling, Scrollbalken und Scroll-Gadgets.
-
- - In der Titel-Zeile jedes Fensters werden Daten über den Text
- angezeigt: Filename, aktuelle Cursorposition im Text, ob das File
- geändert wurde ...
- Zukünftige Versionen werden evtl. auch anwenderspezifische Angaben
- erlauben.
-
- - Mehrere Texte könne in verschiedenen Fenstern gleichzeitig
- bearbeitet werden, Windows können 'iconified' werden.
- Ab einer der nächten Versionen wird es möglich sein, einen Text in
- mehreren Fenstern zu bearbeiten.
-
- - AmokEd ist reentrant und kann resident geladen werden. Siehe
- Befehl 'resident' im AmigaDos-Handbuch.
-
- AmokEd wurde entwickelt, um einige Nachteile des DME zu beheben und
- diesen weiter zu entwickeln. Durch die Programmierung in der streng
- stukturierte Sprache Oberon ist er leicht zu erweitern. Dies wird
- durch den Application-Port noch weiter vereinfacht.
-
- AmokEd nimmt beliebig viele Filenamen als Argumente an. Diese
- Dateien werden gleich nach dem Programmstart automatisch geladen.
-
- AmokEd V1.30 benötigt AmigaOS 2.0 oder höher.
-
- Starten
- -------
-
- AmokEd ist ganz einfach zu starten:
- vom CLI: AmokEd {Template}
- Template:
- FILES/M,SETTING/K,SOURCE/K,
- SD=SCREENDEPTH/K/N,PS=PUBSCREEN/K,PORTNAME/K,
- NOAPPMENU/S,
- TOPEDGE/K/N,LEFTEDGE/K/N,WIDTH/K/N,HEIGHT/K/N
-
- von der WorkBench: einfach anklicken (Multiselect wird unterstützt)
- Die ToolTypes entsprechen jeweils den ausgeschriebenen Shell-
- Optionen.
-
- Die Optionen sind:
- SETTING <file> zu ladende Konfigurations-Datei
- SOURCE <name> führe <name> anstelle dem in der Konfiguration
- angegebenen Init-File aus
- SD=SCREENDEPTH # öffne Screen mit # Bitplanes (2^n Farben)
- PS=PUBSCREEN <name> Name des PublicScreens, auf dem AmokEd
- sein Fenster öffnen soll, bzw., den AmokEd
- öffnen soll
- PORTNAME <name> Name für den ARexx-Port
- NOAPPMENU Es wird _kein_ Eintrag ins Tools-Menü der
- Workbench generiert
- LEFTEDGE # Fensterposition x = #
- TOPEDGE # Fensterposition x = #
- WIDTH Fensterbreite = #
- HEIGHT # Fensterhöhe = #
-
- Wird als <name> ein leerer String ("") übergeben, so werden
- die Default-Bezeichnungen benutzt.
-
- Existiert bereits ein Screen bzw. ein Port mit dem angegebenen
- Namen, so wird der Name eindeutig gemacht, indem eine Nummer
- angehängt wird. Bsp.: MeinScreen.2
- An die Default-Bezeichungen wird _immer_ eine Nummer angehängt.
-
- Öffnet AmokEd seine Fenster nicht auf dem Workbench-Screen, wird
- ein Eintrag in das Tools-Menü der Workbench generiert. Wird
- dieser Eintrag ausgewählt, bringt AmokEd den Screen nach vorne
- und aktiviert das zuletzt benutzte AmokEd-Fenster.
- Die Option NOAPPMENU verhindert einen solchen Eintrag.
-
- Öffnet AmokEd seine Fenster auf dem Workbench-Screen, können
- Icons auf die Fenster gelegt werden (Stichwort: AppWindow).
- AmokEd versucht dann, die zugehörtigen Dateien zu laden. Hierbei
- werden die Einstellungen (Fenstergröße, lokale Einstellungen)
- von dem Fenster übernommen, in das die Icons gelegt wurden.
-
-
- Die Konfigurations-Datei
- ------------------------
-
- AmokEd kann verschiedene Parameter in einer Konfigurationsdatei
- ablegen. Die Einstellungen, die diese Datei enthält, können z.T.
- durch ToolTypes oder CLI-Optionen überschrieben werden, z.T. durch
- interne Befehle manipuliert werdeock.
-
- Zur Zeit speichert AmokEd folgende Informationen:
- - Fensterposition und -größe, Anzahl der Bitplanes
- - Position und Größe des File-Requesters
- - Schrittweite für TAB
- - Status der Kippschalter WordWrap, SaveTabs, InsertMode, IgnoreCase,
- SaveIcons, NoAppMenu
- - Name das Screens, ARexx-Ports und der Init-Datei, falls die
- internen Default-Werte überschreiben wurden
-
- Die Suchreihenfolge für die Konfigurations-Datei ist, falls SETTING
- nicht angegeben wurde:
- 1) AmokEd.config im aktuellen Verzeichnis
- 2) die in der Shell-Variablen `AmokEdConfig' angegeben Datei
- 3) AmokEd.config im Verzeichnis, in dem AmokEd steht *)
- 4) ENV:AmokEd/AmokEd.config
-
- *) nicht, wenn AmokEd resident gehalten wird
-
- Es ist empfehlenswert, beim ersten Aufruf von AmokEd ein Init-File
- anzugeben (mittels Option/ToolType SOURCE) und anschließend die
- Konfiguration zu speichern.
-
-
- -------------------------
- -------- II ----------
- -------- Makros ----------
- -------------------------
-
- AmokEd verfügt über ein große Anzahl von Befehlen, die es
- ermöglichen, ihn flexibel zu programmieren und weitgehend an die
- Bedürfnisse des Benutzers anzupassen.
-
- Mehrer Befehle können zu Makros zusammengefasst werden, die
- wiederum in anderen Makros verwendet werden können.
-
- Jeder Befehl besteht aus einem SCHLÜSSELWORT und einer _festen_
- Anzahl von ARGUMENTEN (z.Zt. 0..3). Das Trennzeichen zwischen Argu-
- menten ist das SPACE. Um Argumente zu übergeben, die ein Space
- enthalten, müssen diese in Klammern gesetzt werden.
-
- Bsp.: befehl (argument mit spaces).
- Anstelle der Klammern können auch die einfachen Anführungs-/Schluß-
- zeichen (`') benutzt werden.
-
- TEXT, der ausgegeben werden soll, wird ebenfalls in Klammern bzw.
- Anführungs-/Schlußzeichen gesetzt.
-
- Befehle können in Groß- oder Kleinschreibung eingegeben werden,
- Argumente i.A. auch. Ausnahmen: eingebaute Variable (siehe dort),
- Tastenbezeichnung (siehe dort) und auszugebender Text (logish :-).
-
- Beispiele für Makros:
- right right (Hallo) right right (Hallo) return
- map f3 (up right) map f5 (down left)
- map f10 ((Hallo))
-
- Nochmal - weil's wirklich wichtig ist:
- Wenn ein Befehl EIN Argument erwartet, dann nimmt es auch nur
- ein Argument. Alle übrigen Argumente werden für (einen)
- weitere(n) Befehl(e) gehalten. Also:
-
- map f5 right - `right' ist nur ein Wort, wir
- brauchen keine Klammern
-
- map f5 (right right) - wir wollen f4 mit zwei `right'
- belegen, also brauchen wir die
- Klammern, oder das zweite `right'
- wird nicht auf die Taste gelegt
-
- map c-del `repeat cright del' - ist bereits als REMEOL
- implementiert, aber ein weiteres
- Beispiel
-
- Einige Argumente werden ggf. mehrmals durch den Befehlsinterpreter
- geschickt.
- Der MAP-Befehl ist ein gutes Beispiel.
- Wenn der MAP-Befehl ausgeführt wird, wird beim ersten Lauf durch den
- Interpreter die Taste mit dem Tastentext ohne die äußersten Klammern
- belegt. Wenn die Taste gedrückt wird, wird dieser Text nocheinmal vom
- Interpreter analysiert. Darum muß Text, der ausgegeben werden soll,
- in doppelte Klammern eingeschloßen werden: ((text)). Einige
- komplexerer Befehlsfolgen:
-
- map f4 (right right (Hallo) wleft) *RICHTIG*
- map f4 right right (Hallo) wleft *FALSCH*
-
- map f4 (map f4 ((Hallo))) - wenn f4 das erste Mal gerückt wird,
- belegt sie sich selbst um auf die
- Ausgabe den Textes (Hallo)
-
- map c-i (repeat tr (( ))) - Beispiel, wie ein Space in MAP in
- REPEAT einzubetten ist (durchläuft den
- Befehls- interpreter dreimal!)
-
- Ein einfacher Weg, um mit Befehlsfolgen und/oder Tastaturbelegungen
- herum zu spielen, ist entweder die ESC-Taste (dadurch gelangt man in
- den Befehls- modus) oder a-S zu drücken (alt-shift-s - dadurch wird
- die Zeile, in der der Cursor ist, ausgeführt).
- AmokEd kann also problemlos benutzt werden, um Ihre neuen Tastatur-
- belegungen zu entwerfen und zu testen.
-
-
- ---------- STRINGVARIABLEN ----------
-
- Stringvariablen werden durch ihren Inhalt ersetzt.
- Drei Eingabeformen sind erlaubt:
-
- $varname - der Variablenname kann nur aus a-z,A-Z,0-9,_,-
- bestehen
- $(varname) - alle Zeichen außer `(' und `)' sind erlaubt
- $`varname' - alle Zeichen außer ``' und `'' sind erlaubt
-
- Die letztetern beiden Formen erlauben ungewöhnliche Varibalennamen,
- mit Punkten oder andern Zeug.
-
- Es gibt einige spezielle Variablen:
-
- filename - der aktuelle Filename (ohne Pfad)
- path - der komplette Pfad zum Verzeichniss der Datei
- modified - Änderungs-Status des Textes
- scanf - der zuletzt geSCANFTe String (siehe SCANF unten)
- portname - der Name des AmokEd-ARexx-Port
- screenname - der Name des Public-Screens
- findstr - der aktuelle Suchstring
- repstr - der aktuelle Ersatzstring
- lineno - die aktuelle Zeilennummer (1..n)
- colno - die aktuelle Spaltennummer (1..n)
- margin - der mit MARGIN gesetzte Rand
- currentline - der Inhalt der aktuellen Zeile
- winleft, wintop, winwidth, winheight
- - die aktuellen Pixel-Masse des Fensters
- tmpleft, tmptop, tmpwidth, tmpheight
- - die mit TMP* gesetzten Pixel-Masse für das nächste
- Fenster
-
- Andere Variablen werden in folgender Reihenfolge gesucht:
-
- (1) Interne Variablen (siehe SET, UNSET).
- Diese Variablen werden als lokale Variablen des aktuellen
- Prozesses gespeichert und beim Beenden von AmokEd wieder gelöscht.
- (2) Globale Enviroment-Variblen (siehe SETENV, UNSETENV).
- (3) AmokEd-Tastaturbelegungen oder -Menüdefinitionen. Dies ermög-
- licht es, etwas wie $sa-tab anzugeben um die Belegung der Taste
- shift-alt-tab einzufügen (siehe MAP, UNMAP und Menü-Befehle).
- (4) Das Makro wird an ARexx übergeben, falls installiert.
-
- Variablen von Type (1) und (2) sind, wg. der Kompatibilität zu
- AmigaDos, nicht Groß-Kleinschreibungs-sensibel,
-
- ANMERKUNG: Was ist an folgenden Befehl falsch?
-
- repeat 100 (first ($myvar))
-
- Falsch ist, daß $myvar eingesetzt wird, BEVOR der Repeat ausgeführt
- wird. $myvar könnte Zeichen enthalten, die die Befehlsbeschreibung
- durcheinander bringen könnten. Wenn $myvar z.B. ein `(' enthält,
- kommt etwas heraus wie `repeat 100 (first (()), was offensichtlich
- falsch ist. Durch die Benutzung von `\' kann dies vermieden werden.
-
- repeat 100 (first (\$myvar)) - $myvar wird eingesetzt, wenn die
- Schleife ausgeführt wird, und
- nicht vorher
-
- Solche Probleme können auch auftreten, wenn Sie Tasten belegen...
- Wahrscheinlich wollen Sie die Variable nicht in dem Moment eingesetzt
- bekommen, wenn Sie die Taste belegen, sondern wenn die Belegung
- ausgeführt wird.
-
- Andererseits ist das durchaus erlaubt:
-
- set x (tlate +1)
- repeat 100 ($x)
-
- Der Text `tlate +1' wird 100mal ausgegeben...
- Würde die Variable nicht mit Klammern umschloßen (abhängig vom
- Zusammemhang), würde die Variable ausgeführt, und nicht als Text
- ausgegeben.
-
- -------- SPEZIELLE ZEICHEN ---------
-
- `^' wird benutzt, um ein Steuerzeichen einzuleiten.
- Bsp.: ^c entspricht control-c (ASCII-Wert 03)
- Es ist nicht möglich, ^@ (ASCII-Wert 00) anzugeben, da dieses
- Zeichen intern das Zeilenende markiert.
-
- `\' Der `Backslash' überschreibt die spezielle Bedeutung des nächsten
- Zeichens.
- Bsp.: map c-a ((^l)) - belegt ctrl-a mit ASCII-Wert 0C
- map c-a ((\\\^l)) - belegt ctrl-a mit `^l'
- Das erste `\' überschreibt das zweite,
- das dritte das `^'. Die Taste ist dann
- mit `\^l' belegt.
-
-
- --------- BEFEHLS LISTE ---------
-
- # -Rest der Zeile ist Kommentar (für Skript-Files)
- (text) -gibt Text aus, als wäre er direkt eingegeben
- taste -führt Tastaturbelegung als Makro aus (Bsp.: c-a)
- header-item -führt einen Menüpunkt als Makro aus (Bsp.: Project-Save)
- ABORT -bricht Makroausführung ab
- APPL -rufe Application auf (siehe VII. `Application'-Port)
- APPLCLOSE -beendee Application (siehe VII. `Application'-Port)
- ARPBSAVE -BSAVE FileRequester \
- ARPINSFILE -INSFILE FileRequester |
- ARPLOAD -NEWFILE FileRequester | wenn ASL-Lib verfuegbar
- ARPSAVE -SAVEAS FileRequester |
- ARPSAVECFG -SAVECONFIG FileRequester |
- ARPSOURCE -SOURCE FileRequester /
- ASCII -zeigt den ASCII-Wert des Zeichens unter dem Cursor an
- BACK -identisch mit BS
- BACKTAB -Tabulatorsprung rückwärts
- BCOPY -kopiere Block vor die Cursorzeile
- BDELETE -lösche den Block aus dem Text
- BLOCK -markiere Anfang/Ende des Blocks
- BMOVE -verschiebe den Block vor die Cursorzeile
- BOTTOM -springe zum Textende
- BS -`backspace' (lösche Zeichen links vom Cursor)
- BSAVE file -speichere den Block in <file>
- BSOURCE -`source' Block wie ein Skript-File
- CD dir -setze aktuelle Verzeichnis des Textes auf <dir>
- CHECKRESET hdr-item -löscht Checkmark im Menüpunkt hdr-item
- CHECKSET hdr-item -setzt Checkmark im Menüpunkt hdr-item
- CHECKTOGGLE hdr-item -schaltet Checkmark im Menüpunkt hdr-item um
- CHFILENAME name -ändere den Namen des bearbeiteten Files
- CLEARMAP -lösche Benutzer-Tastaturbelegung und stelle System-
- Belegung her
- DEL -`delete' (lösche Zeichen unterm Cursor)
- DELINE -lösche Zeile (siehe UNDELINE)
- DOWN -Cursor runter
- DOWNADD -Cursor runter; wenn am Textende, füge Zeile an
- ESC -schalte Befehlseingabezeile ein/aus
- ESCIMM arg -schalte Befehlseingabezeile ein und zeige dort <arg> als
- vordefinierte Eingabe
- EXECUTE comm -führe CLI-Befehl aus **)
- FIND string -setze Suchstring und führe ein NEXT aus
- FINDR fstr rstr -setze Such/Ersatzstring und führe ein NEXTR aus
- FINDSTR -setze Suchsting
- FIRST -spring zu Spalte 1
- FIRSTNB -springe zum ersten Nicht-Space-Zeichen in der Zeile
- GOTO BLOCK -springe zum Anfang des markierten Blocks, bzw. Textanfang
- GOTOCOL - setze Cursor in Splate n (Spalten beginnen mit 1)
- GOTO END -springe zum Ende des markierten Blocks, bzw. nicht
- GOTO START -identisch mit GOTO BLOCK
- GOTO [+/-]n -springe zur absolut/relativ angegebeben Zeile
- HEIGHT n -setze die Höhe in Pixels für alle weitern neuen Fenster
- ICONIFY -`iconify' das Fenster (siehe unten)
- IF cnd act -IF/WHILE/IFELSE .. (siehe unten)
- IFELSE cnd ifact elseact -(siehe unten)
- INDENT -rückt Zeile um die Einrückung der darüber weiter ein
- INSERT text -fügt <text> ein, unabhängig von InsertMode
- INSFILE file -füge <file> in den Text ein
- INSLINE -füge Zeile über der Cursorzeile ein
- JOIN -verbinde nächste Zeile mit dieser
- JUSTIFY typ -erzeuge Blocksatz für diese Zeile mit Breite $margin
- <typ>= full -> Blocksatz
- (weitere noch nicht implementiert)
- LAST -springe hinter letztes Nicht-Space-Zeichen der Zeile
- LEFT -Cursor links
- LEFTEDGE n -setze die linke Kante in Pixels für alle neuen Fenster
- MAP key map -belege Taste <key> mit <map>
- MARGIN n -setze rechten Rand für WordWrap und Reformat (siehe dort)
- MATCHBRACKET -sucht die passende Klammer
- MENUADD hdr item cmd -füge Menüpunkt an
- MENUADDSEP hdr -füge Trennzeile an das Menü an
- MENUADDT hdr item cmd -füge Menüpunkt mit CheckMark an
- MENUCLEAR -lösche das ganze Menü
- MENUDEL hdr item -lösche eine Menüpunkt
- MENUDELHDR hdr -lösche ein Untermenü
- MENUOFF -schalte Menü aus (mehrfache Aufrufe werden gestapelt)
- MENUON -schalte Menü ein (mehrfache Aufrufe werden gestapelt)
- MULTIREPLACE f s -interactives Suchen und Ersetzen
- MYPRI n -setze Task-Priorität auf n (-128<=n<=127)
- NEWFILE file -ersetzt aktuelle Text durch das neue <file>
- NEWWINDOW -öffne ein neues Editor-Fenster
- NEXT -suche die nächste Stelle, an der der Suchstring auftritt
- NEXTR -suche nächstes Auftreten und ersetze
- NEXTWIN -aktiviere nächstes Text-Fenster *)
- NOSCRUPDATE -schaltet Bildschirmausgabe für die Dauer des Makros ab
- NULL -mache nichts
- OBERROR action -Oberon-Fehler-Unterstützung (siehe unten)
- OVERWRITE text -schreibt <text> über vorhandenen, unabhängig von InsertMode
- PAGEDOWN -blättere eine Seite abwärts (siehe PAGESET)
- PAGESET n -setze Seitengröße für PAGEUP/DOWN auf n Prozent Fenstergröße
- PAGEUP -blättere eine Seite aufwärts (siehe PAGESET)
- PING n -setze Textmarkierung (0-9)
- PONG n -springe zu eine vorher gesetzten Textmarkierung (0-9) *)
- PREV -suche die vorherige Stelle, an der der Suchstring auftritt
- PREVR -suche vorheriges Auftreten und ersetze
- PREVWIN -aktiviere vorhergehendes Text-Fenster *)
- POPMARK -hole Markierung von Stapel und zeige den markierten Block
- PURGEMARK -lösche den Stapel der Blockmarkierungen
- PUSHMARK -lege markierten Block auf den Stapel und lösche Markierung
- QUIT -beende
- RECALL -gehe in Befehlszeile und zeige den zuletzt eingegebenen
- Befehl an. Muß auf eine Taste gelegt sein (c-esc).
- REFORMAT -bricht den Absatz um
- (Absatzende: Leerzeile oder weiter eingerückte Ziele)
- REMSOL -lösche Text link vom Cursor bis zum Zeilenanfang
- REMEOL -lösche Text unter und rechts vom Cursor
- REPEAT cnd comm -siehe unten
- REPSTR string -setzte Ersatzstring
- RESETTOGGLE toggle -lösche Kippschalter (siehe unten)
- RESIZE cols rows -ändere Größe des aktuellen Fensters (Bsp.: resize 70 23)
- RETURN -identisch mit (FIRST DOWNADD)
- RIGHT -Cursor rechts
- RX -rufe ARexx-Makro, kein Argument (RX makroname) (s. unten)
- RX1 -rufe ARexx-Makro, ein Argument (RX makroname arg)
- RX2 -rufe ARexx-Makro, zwei Argumente (RX makroname arg1 arg2)
- RXS -rufe ARexx-Befehlsfolge direkt auf
- SAVEAS file -speichere aktuellen Text als <file>
- SAVECONFIG -speichere Standard-Einstellungen
- SAVEMAP file -speichere Benutzer-Tastaturbelegung in <file>
- SAVEOLD -speichere aktuellen Text unter seinen Namen
- SAVESMAP file -speichere alle Tastaturbelegungen incl. Systembelegung
- SCANF ctlstr -scan den String an der Curorposition (siehe unten)
- SCREENBOTTOM -setze Cursor in die letzte Zeile des Fensters
- SCREENTOP -setze Cursor in die erste Zeile des Fenstern
- SCROLLDOWN -rolle Text eine Zeile nach oben, ohne Cursor zu bewegen
- SCROLLUP -rolle Text eine Zeile nach unten, ohne Cursor zu bewegen
- SET var str -erzeuge/ändere eine interne Variable
- SETENV var str -erzeuge/ändere eine Umgebungs-Variable (WB1.3 ENV:)
- SETFONT font size-setze den Font des Fensters (Bsp.: setfont topaz.font 11)
- SETPATTERN pat -setze das Pattern für den File-Requester
- SETTOGGLE toggle -setze Kippschalter (siehe unten)
- SOURCE file -`source' ein Skript-File
- SPLIT -spalte die Zeile an der Cursorposition
- SWAPCHAR -vertaucht Zeichen unterm Cursor mit dem rechts davon
- SWAPMARK -PUSHMARK, tausche obere 2 Markierungen auf Stapel, POPMARK
- TAB -Tabulatorsprung vorwärts
- TABINDENT -rückt Zeile um die mit TABSTOP festgelegte Schrittweite ein
- TABSTOP n -setze Tabulatorstop alle n Zeichen
- TABUNINDENT -rückt Zeile um die mit TABSTOP festgelegte Schrittweite ein
- TITLE string -zeige <string> in der Titelzeile des Fensters
- TLATE [+/-]n -gib Zeichen unter dem Cursor ASC-Wert n (absolut/relativ)
- TMPHEIGHT n -setze Höhe in Pixels nur für das nächste neue Fenster
- TMPLEFT n -setze linke Ecke in Pixels nur für das nächste neue Fenster
- TMPTOP n -setze oberen Abstand in Pixels nur für das nächste neue Fenster
- TMPWIDTH n -setze Breite in Pixels nur für das nächste neue Fenster
- TOGGLE toggle -schalte Kippschalter um (siehe unten)
- TOMOUSE -bewege den Cursor zur Mausposition
- TOP -springe zum Textanfang
- TOPEDGE n -setze die Oberkante in Pixels für alle neuen Fenster
- UNBLOCK -lösche aktuelle Blockmarkierung
- UNDELINE -holt die zuletzt mit DELINE gelöschte Zeile zurück
- UNDO -mache Anderungen in der aktuelle Zeile rückgängig (muß auf
- eine Taste gelegt werden, damit's funktioniert)
- UNINDENT -rückt Zeile eine Stufe weiter aus
- UNJUSTIFY -entferne mehrfache Leerzeichen zw. des Wörtern (Flattersatz)
- UNMAP key -lösche Belegung der Taste <key>
- UNSET var -lösche interne Variable
- UNSETENV var -löschen Umgebungs-Variable (WB1.3 ENV:)
- UP -Cursor hoch
- WHILE cnd act -(siehe unten)
- WIDTH n -setze die Breite in Pixels für alle weitern neuen Fenster
- WLEFT -gehe an den Anfang des vorherigen Worts; wenn innerhalb
- eines Wortes, dann an den Anfang diese Wortes
- WRIGHT -gehe an den Anfang des nächsten Worts
-
- *) PONG springt auch in ein anderes Textfenster. Wenn Sie ein Tool ein-
- setzten, das das Fenster unter der Maus aktiviert (z.B. DMouse,
- AutoPoint), funktioniert dies nicht mit dem gewünschten Effekt.
- Gleiches gilt für NextWin, PrevWin
-
- **) Die Ein- und Ausgabe dieser Befehle erfolgt über die Shell, von
- der aus AmokEd gestartet wurde. Wird die Ein-/Ausgabe nicht
- gewünscht, so muß sie per Hand von/nach NIL: umgeleitet werden.
- Wurde AmokEd von der Workbench oder mit 'run >NIL: <NIL: ...'
- gestartet, so haben die Befhele kein Ein-/Ausgabe-Fenster.
-
- ---------- Weitere Inforamtionen zu kompizierteren Befehlen ------------
-
- INDENT - rückt die Zeile um soviele Zeichen weiter ein, wie
- die nächste weniger weit eingerückte darüber
- eingerückt ist. (Ich liebe Deutsch :-)
-
- Bsp.:
- 0.2.
- | Zeile 1 <- diese Zeile ist weniger weit eingerückt
- | Zeile 2
- | Zeile 3 <- in dieser Zeile steht der Cursor
-
- Nach dem ersten INDENT
- 0.2.4.6.8.
- | Zeile 1
- | Zeile 2 <- diese Zeile ist weniger weit eingerückt
- | Zeile 3 <- der Cusor steht immde noch hier
-
- Und noch ein INDENT
- 0.2.4.6.8.0.2.4.
- | Zeile 1
- | Zeile 2
- | Zeile 3
-
- UNINDENT - rückt soweit aus, daß die Einrückung mit der nächsten
- weniger weit eingerückten Zeile darüber übereinstimmt.
-
- Bsp.:
-
- | Zeile 1
- | Zeile 2 <- diese Zeile ist weniger weit eingerückt
- | Zeile 3 <- hier steht der Cursor
-
- Nach dem ersten UNINDENT
- 0.2.4.6.8.
- | Zeile 1 <- diese Zeile ist weniger weit eingerückt
- | Zeile 2
- | Zeile 3 <- der Cusor steht immde noch hier
-
- Nach dem zweiten UNINDENT
- 0.2.4.6.8.
- | Zeile 1
- | Zeile 2
- | Zeile 3
-
- MENUOFF - Diese Befehle schalten das Menü ein bzw. aus.
- MENUON Für Leute, die eine Menge MENUADD in ihrer `.aedrc'
- haben, ist es gut zu wissen, daß MENUADD wesendlich
- schneller arbeitet, wenn das Menü vorher ausgeschaltet
- wird. (Danach natürlich wieder einschalten!)
- Die Aufrufe sind stapelbar. D.h. wenn Sie MENUOFF,
- sagen wir, zweimal aufrufen, dann benötigen Sie auch
- zwei MENUON, um das Menü wiedr einzuschalten.
- Andersrum funktioniert's natürlich nicht :-)
-
- CHECKRESET - Hierbei wird beachtet, daß beim Aufruf vom Menü
- CHECKSET heraus die CheckMark nicht behandelt wird :-) Damit
- CHECKTOGGLE ist es leicht möglich, als cmd einfach die Taste
- anzugeben, die äquvivalent belegt ist.
-
- Bsp.:
- menuaddt test test c-help
- map c-help (toggle 5 checktoggle test-test)
-
- Auch Mutal-Exclude ist möglich. Bsp.:
- menuaddt test test1 -help
- menuaddt test test2 s-help
- map -help (checkreset test-test2 checkset test-test1)
- map s-help (checkreset test-test1 checkset test-test2)
- map c-help (checktoggle test-test1 checktoggle test-test2)
-
- SCANF cltstr - Dieser Befehl ist gleichbedeutend mit der C-Funktion
- scanf(). Es werden jedoch nur Strings gescannt.
-
- REPEAT n arg - Wiederhole <arg> n-mal
- Außer einer Nummer kann n folgendes sein:
-
- line aktuelle Zeilennummer (Zeilen beginnen bei 1)
- lbot Anzahl Zeilen zum Textende, mit der Cursorzeile
- cleft Spaltennummer (Spalten beginnen bei 0)
- cright Anzahl Zeichen bis zum Zeilenende (EOL),
- incl. Zeichen unterm Cursor
- tr Anzahl Zeichen zum nächsten Tabulatorstop
- tl Anzahl Zeichen zum vorherigen Tabulatorstop
- lwintop Anzahl Textzeilen zur obersten Windowzeile
-
- Verschiedene Befehle können die Repeat-Schleife
- abbrechen: Jeder FIND[R], NEXT[R], PREV[R], in dem der
- Suchstring nicht gefunden wird, bricht die Schleife
- (und das Makro) ab. Das Selbe geschieht, bei Befehlen,
- die über die Textgrenzen hinaus gehen konnen (z.B.
- UP, DOWN, LEFT, RIGHT ...).
- Natürlich beendet auch ABORT das Makro.
-
- Wenn Sie als Parameter -1 angeben, so wird REPEAT
- ewig ausgeführt (genau genommen $7FFFFFFF-mal, was
- eigentlich reichen müßte), oder bis zu einem Abbruch.
-
- Bsp.: Suchen/Ersetzten im ganzen Text (geht natürlich
- besser mit MULTIREPLACE :-)
-
- map c-R (escimm (findstr ) escimm (repstr ) repeat -1 nextr)
-
- IF [!]bedingung arg
- WHILE [!]bedingung arg
- IFELSE [!]bedingung ifarg elsearg
-
- - Wenn die angegebenen Bedingung erfüllt ist, führe das
- Argument aus. Bei IFELSE ansonsten das Else-Argument.
- Bei WHILE wird das Argument solange ausgeführt,
- solange die Bedingung erfüllt ist. (Vorsicht!)
-
- Ein ggf. vorangestelltes `!' invertiert die Logik.
-
- Bedingungen:
-
- [i]# Kippschalter [i]# gesetzt (siehe unten)
- t Cursor in Zeile 1
- b Cursor in der letzten Zeile
- l Cursor in Spalte 0
- r Cursor am Zeilenende (Space darunter und dahinter)
- m Text wurde geändert (modified)
- i Einfügemodus eingeschaltet (insertmode on)
- x[<=>]# Cursor in Spalte # (beginnen mit 1) *)
- y[<=>]# Cursor in Zeile # (beginnen mit 1) *)
- cl Zeichen unter Cursor ist Kleinbuchstabe (`a'..`z')
- cu Zeichen unter Cursor ist Großbuchstabe (`A'..`Z')
- ca Zeichen unter Cursor ist alpha-numerisch
- (`a'..`z', `A'..`Z',`0'..`9', `_', 192..255)
- cn Zeichen unter Cursor ist Ziffer
- c[<=>]# Zeichen unter Cursor hat ASCII-Wert # *)
- cb Curosr ist innerhalb des markierten Blocks
-
- *) eines oder eine Kombination der Zeichen `<', `=', `>',
- gefolgt von einer Dezimalzahl. Bsp.: y=>23
-
- if c<32 .. Zeichen unterm Cursor ist kleiner als 32
- if c<>32 .. Zeichen unterm Cursor ist ungleich 32
- if !c=32 .. dito
- while !b down
-
- Bsp.: simulieren eines Einfügemodes-Kippschalters
- (muß natürlich in einer Zeile eingegeben werden)
-
- map a-i (ifelse 0 (toggle 0 settoggle insertmode)
- (toggle 0 resettoggle insertmode))
-
- Bsp.: solange Kleinbuchstabe: mache groß, gehe nach rechts
-
- map c-U (while cl (tlate -32 right)
-
- ICONIFY - Dies ist eine besondere Fähigkeit des AmokEd:
- Das Textfenster wird auf die Titelzeile reduziert.
- Dadurch behalten Sie auch bei vielen Fenstern noch den
- Überblick.
- · merkt sich alte Fenstergröße und -position
- · merkt sich die Position des `iconified'-Fensters für
- weitere `iconify'
-
- TOGGLE toggle
- SETTOGGLE toggle
- RESETTOGGLE toggle
-
- - Mir diesen Befehlen werden Kippschalter (toggles)
- geschaltet.
-
- Es gibt 256 globale Toggles, die im gesammtem AmokEd
- Gültigkeit haben, sowie für jeden Text 16 texteigene
- Toggles. Zudem gibt es einige spezielle Toggles, die
- z.B. den Einfügemodus schalten.
-
- Im Einzelnen gibt es folgende Toggles:
-
- i0..i15 texteigener Toggles (ein `i' wird vorangestellt)
- 0..255 globaler Toggle
- wordwrap automatischer Zeilenumbruch +)
- insertmode Einfügemodus +)
- savetab File mit Tabs abspeichern (siehe unten) +)
- modified Änderungs-Status das Textes +)
- numlock NumLock für Zehnerblock
- ignorecase Suchen unabhängig von Groß-/Kleinschreibung
- saveicons speichere Texte und Configs mit Icon ab
-
- +) diese Toggles sind ebenfalls texteigen
-
- OBERROR action
-
- Fehleruntersützung für AmigaOberon. Diese Funktion ist
- nur nutzbar, wenn die oberonsupport.library installiert
- ist. Diese Lib wird ab der nächten Oberon-Release
- mitgeliefert, ist aber jetzt schon auf AMOK#72 zu finden.
-
- Auf AMOK#69 befindet sich eine Beta-Version, die jedoch
- fehlerhaft ist.
-
- action: read liest die Fehlerdatei und zeigt ersten
- Fehler
- first zeigt den ersten Fehler an
- next zeigt den nächsten Fehler an
- prev zeigt den vorherigen Fehler an
- current zeigt den aktuellen Fehler nochmal
-
-
- --------------------------
- ---------- III ----------
- ---------- Tasten belegen -----------
- --------------------------
-
- In Abschnitt II haben wir gesehen, wie AmokEd zu programmieren ist
- (ja, ich denke `programmiernen' ist der richitge Ausdruck.
- Richtig interessant wird es jedoch erst, wenn man die Markros auf
- Tasten legt. Dies können Sie auf drei Arten tun:
-
- 1. Für Ihre Standardbelegung erstellen Sie am besten ein `.aedrc',
- das die gewünschten Tastaturbelegungen, die Menudefinitionen
- etc. enthält.
- 2. Wenn Sie während der laufenden Arbeit mit AmokEd Tasten belegen
- wollen, weil Sie z.B. den Text `Rübennase' oft benötigen, geben
- Sie den MAP-Befehl einfach in der Befehlszeile ein.
- 3. Wollen Sie die neue Makrodefinition zudem in Ihre `.aedrc'
- aufnehmen, so geben Sie sie dort ein, und führen die neue Zeile
- mit der Tasten- kombination `a-S' aus. Abspeichern, fertig!
-
- TASTATUR
-
- Bei AmokEd ist, anders als bei vielen Text-Editoren, JEDE Taste der
- Amiga- Tastatur belegbar, egal ob mit oder ohne `Qualifier'.
- Qualifier sind hier Tasten wie Shift, Ctrl, Amiga, aber auch die
- Maustasten.
- Es hat sich eigentlich nur aus der Gewohnheit heraus ergeben, daß
- z.B. die <Return>-Taste ein RETURN ausführt und die <Up>-Taste ein UP
- etc. Aber Sie können _alle_ Tasten auch völlig anders belegen.
-
- Die Tasten werden nach ihrer Aufschrift benannt, mit einigen Ausnahmen:
-
- · `Rückschritt' (Backspace) heißt `BS'.
- · den Tasten des Zehnerblocks wird `NK' verangestellt, außer bei
- der `Enter'-Taste, die heißt `ENTER'.
- · Die vier Cursor-Tasten heißen `UP', `DOWN', `LEFT' und `RIGHT'.
-
-
- Tasten belegen
-
- Tasten werden mit dme MAP-Befehl belegt (siehe oben).
- <key> entspricht dabei folgender Syntax:
-
- [qual-]<taste> qual: eine Kombination aus den Qualifer-
- Kennungen, gefolgt von einem Bindestrich `-'
- taste: Tastenaufschrift bzw. -name
-
- Qualifier: `a' ALT
- `s' SHIFT
- `c' CTRL
- `A' AMIGA
- `L', `M', `R' linke, mittlere, rechte Maustaste
-
- --- Beispiele ---
-
- tab tab
- -tab tab
- a-a ALT a
- A-a AMIGA a
- sA-a SHIFT AMIGA a
- s-tab SHIFT tab
- c-tab CTRL tab
- ac-? ALT-CTRL ?
- s-f5 SHIFT F5
- nk0 Zehnerblock 0
- cs-nk0 CTRL SHIFT Zehnerblock 0
- s-. SHIFT . (':' auf deutschen Tastaturen)
- L-f10 LINKE MAUSTASTE f10
- L-lmb Linke Maustaste gedrückt
- L-mmove Maus bewegt mit gedrückter linker Maustaste
- LR-lmb Linke Maustaste gedrückt, während rechte Maustaste
- gedrückt bleibt
-
- -----------------
-
- MAUSTASTEN
-
- Auch die Tasten der Maus können belegt werden,
-
- Die drei Maustasten heißen `LMB', `MMB', `RMB'.
-
- Die Standardbelegung ist folgende:
-
- linker Knopf: Setze den Cursor an die Mausposition (TOMOUSE)
- rechter Knopf: `iconify' Fenster (ICONIFY), nur wenn Menü aus ist
-
- Linken Knopf gedrückt halten, während die Maus bewegt wird, zieht
- den Cusor mit.
-
-
- Maustasten belegen
-
- Die Maustasten dienen sowohl als Qualifier (siehe oben), als auch
- als Tasten.
- Dadurch können sie eine Taste belegen, die eine gedrückte
- Maustaste erfordert
-
- map L-a ((Linke Maustaste und `a'))
-
- genauso, wie die Maustasten selbst
-
- map L-lmb ((Linke Maustaste als Taste))
-
- Beachten Sie, daß hierzu der Qulifier <Linke Maustaste> `L' und
- die linke Maustaste selber `lmb' angegeben werden müssen.
-
- Wenn Sie eine Maustaste selbst und diese Maustaste als Qualifier belegten,
-
- map L-lmb (tomouse)
- map L-a ((Hallo))
-
- beachten Sie bitte, daß die erste Belegung immer dann ausgeführt
- wird, auch wenn Sie L-a ansprechen möchten: BEIDE Belegungen würde
- ausgeführt!
- Um Verwirrungen zu vermeiden, sollten Sie die Standardbelegung
- der rechte Maustaste (belegt mit ICONIFY) löschen (UNMAP), wenn sie
- diese als Qualifier benutzten wollen.
-
- Die MAUSBEWEGUNG wird belegt, indem Sie eine oder mehrere der
- Maus-Qualifier (`L', `M', `R') und als Taste `mmove' angeben. Also
- so:
-
- map L-mmove ((Maus bewegt mit gedrückter linker Maustaste))
- map LR-lmb ((Linke Maustaste drückt, rechte Maustaste bleibt gedrückt))
-
- Wie wäre es damit: Die Zeichen under dem Cursor in Großbuchstaben
- wandeln, solange die Mause bewegt wird?
-
- map LR-mmove (tomouse if cl (tlate -32))
-
-
- HINWEISE
-
- Die normale Amiga-Maus hat nur zwei Tasten, eine linke und eine
- rechte (LMB, RMB - logisch!). Eine ggf. angeschloßenen
- Drei-Tasten-Maus wird auch unterstützt.
-
- Jede Taste kann mit einer Kombination aus Shift, Alt, Ctrl, Amiga
- und den Maustasten (oder gar keiner) bestimmt werden. Mit diesen
- sechs Qualifiern (sieben bei Drei-Tasten-Maus) konnen jeder Taste
- bis zu 64 (128) Belegungen zugewiesen werden.
-
- Die CAPS-LOCK-Taste, wenn sie leuchtet, ist für Alpha-Tasten
- gleichbedeutend mit <Shift>.
-
- Die Kombination Alt-Amiga (aA) ist nicht sehr brauchbar, da
- Intuition sie als Mause-SELECT interpretiert. Andere Amiga-
- Kombinationen werden von Intuition für Mausbewegung und andere
- Dinge benutzt. Einige andere Qulifier-Kombinationen können wegen
- einer speziellen Bedeutung auch unbrauchbar sein.
-
-
- Die Standardbelegung
-
- Alle druckbaren Ascii-Tasten sind mit ihrem Ascii-Equiavlent
- belegt. BS, DEL, UP, DOWN, LEFT, RIGHT, TAB, S-TAB, und ENTER sind
- korrekt belegt. Und das ist die Standardbelegung:
-
- map (a-c) (bcopy)
- map (a-d) (bdelete)
- map (a-down) (scrolldown)
- map (a-l) (while cu (tlate +32 right))
- map (a-m) (bmove)
- map (a-r) (nextr)
- map (a-s) (bsource)
- map (a-u) (while cl (tlate -32 right))
- map (a-up) (scrollup)
- map (bs) (bs)
- map (c-/) (escimm (find ))
- map (c-]) (ref)
- map (c-[) (ctags)
- map (c-1) (goto block)
- map (c-b) (block)
- map (c-c) ()
- map (c-del) (remeol)
- map (c-down) (pagedown)
- map (c-esc) (recall)
- map (c-f) (reformat)
- map (c-g) (escimm (goto ))
- map (c-i) (insertmode on)
- map (c-j) (join)
- map (c-l) (wleft)
- map (c-n) (next)
- map (c-o) (insertmode off)
- map (c-p) (prev)
- map (c-q) (quit)
- map (c-r) (wright)
- map (c-s) (split first down)
- map (c-u) (unblock)
- map (c-up) (pageup)
- map (c-w) (wordwrap toggle)
- map (del) (del)
- map (down) (down)
- map (enter) (return)
- map (esc) (esc)
- map (f1) (escimm (insfile ))
- map (f10) (saveold quit)
- map (f2) (escimm (newfile ))
- map (f3) (escimm (newwindow newfile ))
- map (f6) (saveold iconify)
- map (f7) (escimm (bsave ))
- map (f8) (saveold escimm (newfile ))
- map (f9) (saveold)
- map (L-lmb) (tomouse)
- map (L-mmo) (tomouse)
- map (left) (left)
- map (R-rmb) (iconify)
- map (return) (return insline up firstnb down)
- map (right) (right)
- map (s- ) (( ))
- map (s-del) (deline)
- map (s-down) (bottom)
- map (s-left) (first)
- map (s-right) (last)
- map (s-tab) (backtab)
- map (s-up) (top)
- map (sa-s) (unblock block block bsource)
- map (tab) (tab)
- map (up) (up)
- map `a-)' (`:-)') ein Standard-Smily
-
-
- -------------------------------
- ---------- VI ----------
- ---------- ARexx Unterstützung ----------
- -------------------------------
-
- Sie haben von ARexx vollen Zugriff auf alle Funktionen von AmokEd.
- Zudem gibt es einige Befehle, die Sie nur von ARexx oder einem
- ARexx-Programm nutzen können (z.B. Rückgabewerte).
-
- ARexx-Makros aufrufen
-
- Es gibt drei Möglichkeiten, externe ARexx-Makros aufzurufen:
- · Die Befehle RX, RX1, RX2 rufen das als erstes Argument übergeben
- ARexx-Makro mit keinem, einem oder zwei Argumenten auf. Wollen
- sie mehr Argumente übergeben, benutzen Sie einfach RX1 und setzen
- alle Argumente in Klammern. Bsp.:
- rx demo
- rx1 renumcomproc 119
- rx2 DelAllAsterix 23 28
- rx1 MakroMitVielenArgs (1 2 3 4 5 6 7)
-
- · Die zweite Möglichkeit ARexx-Makros aufzurufen ist, den
- Markonamen einfach in der Befehlszeile einzugeben, dahinter die
- Argumente. Stößt AmokEd auf einen Befehl, den er nicht kennt,
- übergibt er ihn als Makro- name an ARexx. Der gesamte Rest der
- Befehlszeile wird als Argument übergeben. Dies funktioniert bei
- Tastenbelegungen genauso, Sie sollten dort aber besser die
- RX-Befehle explizit benutzen. Bsp.:
- MakroMitVielenArgs 1 2 3 4 5 6 7
-
- · Der Befehl RXS erlaubt Ihnen, ARexx-Befehle direkt auszuführen.
- Das Argument wird hierbei nicht als Makroname, sondern als
- Befehlsstring ("stringfile" lt. ARexx-Handbuch) interprettiert
- und direkt ausgeführt. Bsp.:
- rxs (address command 'copy #? ram:')
-
- Von den ARexx-Makros aus können Sie die Befehle des AmokEd wie
- gewohnt benutzen. Anhand es Rückgabewertes rc (in ARexx) können Sie
- feststellen, ob wie gewünschte Funktion erfolgreich war. Mehr
- darüber entnehem Sie bitte der gesonderten Dokumentation Über die
- Benutzung von ARexx.
-
- AmokEd über ARexx von außen steuern
-
- AmokEd läßt sich auch von externen ARexx-Makros steuern, die
- nicht von AmokEd aus aktiviert wurden. Dazu muß Ihnen (bzw. dem
- Makro) lediglich bekannt sein, wie der ARexx-Port des AmokEd heißt,
- an den sie senden wollen. Der Port-Name ist in der Variablen
- $rexxport gespeichert, da er ggf. generiert wird (siehe Abschnitt
- Aufruf).
- Wenn sie nur einen AmokEd aktiv und die RexxArpLib installiert
- haben, können sie mit
- rxs (setenv rexxport $rexxport)
- den Port-Namen als ARexx-Enviroment-Variable istallieren.
- Bessere Möglichkeiten bietet der Einsatz von Applikationen (siehe
- unten).
-
- Es gibt (z.Z.) einen spezielle ARexx-Befehl, die nur über den
- ARexx-Port funktioniert:
-
- GetVal - Liefert die angegebene Variable zurück
- Bsp: der AEd-Befehl
- rxs (options results; getval $rexxport; say result)
- gibt den Name des AEd-Rexx-Ports im Rexx-StdOut aus.
-
- Weitere Informationen über den Einsatz von AReex in AmokEd
- entnehmen Sie bitte der gesonderten ARexx-Dokumentation.
-
-
- --------------------------------
- ---------- VII ----------
- ---------- Der Application-Port ----------
- --------------------------------
-
- Eine weitere hervoragende Eigenschaft von AmokEd ist der
- Applikation-Port. Über diesen Port auf ARexx-Basis können Anwendungen
- eine enge Bindung an AmokEd erreichen.
- Eine Applikation muß sich selbst bei AmokEd anmelden. Hierzu
- benötigt sie den Portnamen, über den sie mit AmokEd kommunizieren
- kann. Dieser Portname ist über die Variable $rexxport erreichbar.
-
- Eine Applikation von AmokEd aus zu starten, ist ganz einfach:
- Bsp.:
- execute (run <nil: >nil: AmokEd:ApplDemo $rexxport)
-
- Wichtig ist hierbei, daß Sie die Applikation als eigene Task
- starten, da AmokEd auf die Beendigung den EXECUTE Befehls
- wartet.
-
- Die Applikation meldet sich nun bei AmokEd an und teilt ihm mit,
- unter welchen Applikations-Namen sie zu erreichen ist.
- Ist dies geschehen, so kann sie sehr einfach genutzt werden:
- · Geben Sie den Applikations-Name einfach in der Befehlszeile ein.
- Der Rest der Zeile wird der Applikation als Argumeten
- mitübergeben.
- · Mit dem Befehl `APPL' können Sie wie mit dem Befehl RX1 eine
- Applikation mit einem Argument aufrufen.
- Wenn Sie Applikationen in Makros nutzen, sollten sie diesen
- Befehl nehmen.
-
- Bsp.:
- ApplDemo Hallo Du!
- appl ApplDemo (Hallo Du!)
-
- Genaueres ist von der eingesetzten Applikation abhängig. Lesen Sie
- hierzu die Dokumentation der Applikation.
-
- Alles weitere über Applikationen - Programmierung etc. - entnehmen
- Sie bitte der gesonderten Dokumentation.
-
- ---------------------------------------------------------------------------
-
- Sorry, wenn die deutsche Dokumentation etwas holprig klingt. Aber
- manche Sachen lassen sich in Englich schöner ausdrücken.
- Ich werde, wenn ich mal Zeit hab, auch eine vollkommen neue Doku
- schreiben, da ich von Freunden weiß, das diese nicht so gut ist (insb.
- zum nachschlagen).
-
- +++hartmut
-
- ---------------------------------------------------------------------------
- Release Notes:
-
- Bedeutung: + hinzugekommen, - entfernt, ^ Funktion verbessert
-
- V1.30 - 09 Aug 1992 (release)
- + unterstützt Lesen von Files, die mit einer XPK-Lib gepackt wurden
- (und damit auch PowerPacker)
- + MATCHBRACKET
- + OberonSupport (Grundsatz über den Haufen geschmissen, keine Sprachab-
- hängigen Sachen einzubauen, aber es war _sehr_ einfach)
- + BusyPointer, System-Requester erscheinen auf AmokEds Screen
- + AppMenuItem (wenn nicht auf WB screen), AppWindow
- + Toggle: SaveIcons
- + Speichert mit Icons, defaults: ENV:AmokEd/def_(text|config).info
- + ToolType/Shell-Option: NOAPPMENU
- · 'iconified' Window hat Depth- uns Zoom-Gadget
- · Portname und ScreenName werden ggf. eindeutig gemacht
- · einige Requester eingebaut (z.B. VERSION, Load-Nachfrage)
- - Bug in FIND
- - Bug: Dead-Keys nicht möglich
-
- V1.29 - 19 Jun 1992 (intern)
- ^ WordWrap und Reformat nochmal überarbeitet:
- · beim Schreiben (Einfügemodus) wird nur Umgebrochen, wenn die
- Zeile voll beschrieben ist
- |blafasel * | * Cursor Wird hier ein Zeichen
- |jdf jdfjjdjf dfl | eingegeben, erfolgt kein
- ^ margin Umbruch mehr
- · beim Schreiben (Einfügemodus) wird nur bis zum Zeilenausgleich
- umgebrochen, bei REFORMAT bis zum Absatzende (funktioniert
- jetzt auch so)
- - Bugs im Parser
- · 'iconified' Windows untereinander
- · Gadgets als BOOPSI-Gadgets (GadTools hierfür nicht geeignet)
- · 'IF cl', 'IF cu' erkennt Umlaute
-
- V1.28 - 04 Mai 1992 (intern)
- + Variablen: $winleft, $wintop, $winwidth, $winheight,
- $tmpleft, $tmptop, $tmpwidth, $tmpheight,
- $screenname, $portname (wird $rexxport ersetzten)
- + TMPLEFT, TMPTOP, ARPSAVECONFIG
- ^ völlig neue Konfigurationsdateien (im IFF)
- · $rexxport obsolete
- · neue Speicherverwaltung: verhindert MungWall-Hits
- · sourced nicht mehr S:.aedrc/.aedrc, nur noch das in Config angegeben File
- · Suchfolge für Konfig-File ähnlich StyleGuide
- · Scroller als GadTools-Gadget
-
- V1.27 - 16 Apr 1992 (intern)
- · Shell-Parameter geändert (u.a. wg. DOS u. Style-Guide)
- · REMBOL heißt jetzt REMSOL (SytleGuide!)
- · Variablen werden in der lokalen Shell-Umgebung gespeichert
- - Bug: (iconify newwindow arpload) -> crash
-
- V1.26 - 14 Apr 1992 (intern)
- · nach Ausführen eines Rexx-Makros word der Lock für den Text aufs
- CurrentDir gesetzt.
- - Probleme mit dem neuen Lock-Settings behoben
-
- V1.25 - 10 Apr 1992 (small release)
- WICHTIG: Benötigt AmigaOS 2.0 oder größer!!!
- - Bug: Pattern wurde überschrieben (nur in der Release :-)
- · NumLock jetzt nur noch für unqualifzierte Tasten
- + PubScreens :-)
- AmokEd öffnet seinen Screen jetzt als PubScreen ggf. mit dem
- gewünschten Namen und kann sein Window auf dem angegebenen Screen
- öffnen. Dafault: Workbench-Screen
- ^ cond. bei REPEAT: lwintop = Zeilen bis zur Window-Oberkante
- + SETPATTERN: setzt das Pattern, das im ASL-FileReq angezeigt wird
- + bei `IF m' und `$modified' wird Zeile zurückgeschrieben, d.h. das
- das abgefragte Status auch der wirkliche ist.
- - Bug: Scrollen nach rechts, wenn außerhalb des eigentlichen Windows,
- aber nicht in den Scrollen geklickt
- + neue Variable: $path enthält den kommpletten Pfad der Datei
- ^ $Filename anthält nur noch den "FilePart"
- ^ Der Lock für einen Text liegt jetzt IMMER auf dessen Verzeichnis, bzw.
- auf dem Verzeichnis, daß mit CD gesetzt wurde.
- ^ Lock für den Prozess (CurretnDir) ist jetzt immer der Lock des Textes.
- · Wordwrap bricht nur noch die geschreibene Zeile um, Folgezeilen
- werden nicht mehr hochgezogen. Reformat arbeitet wie bisher.
- Nachteil: beim Löschen von Zeichen wird die Folgezeile nicht
- nachgezogen.
- · Tool-Types-Unterstützung (wird bei WINDOW noch geändert)
- - Bug: bei MultiReplace war es möglich, wärend des Ändern den Cursor
- zu versetzten => Replace an falscher Stelle
-
- V1.20c - 09 Feb 1992
- + Justify, Unjustify
- + neue Variablen: $margin, $modified, $currentline
- + Modifed auch schaltbat (mittels *Toggle)
- + GotoCol
- ^ Scrollbar jetzt voll funktionsfähig :-) Dank an Tobias Ruland
- - Bug in RexxRoutinen (Volkers SPrintf ist fehlerhaft)
- - Bug bei BDelete: falsche Zeilennummr, wenn Block = Textende
- - Bug in *Toggle: Titel wurde nicht gesichert
-
- V1.12 - 25 Dec 1991
- + MenuAddT: MenuItem mit CheckMark
- + MenuAddSep
- + CheckSet, CheckRest, CheckToggle: Toggle für die CheckMarks
- + Insert, Overwrite: schreiben Text unabhängig von InsertMode
- + NextWin, PrevWin: holt Windows der Reihe nach nach vorne
- + Cusor nur halbhoch, wenn im OverWrite-Mode
- + CaseInsensitive Find/Replace
- + Indent, Unindent, TabIndent, TabUnindent
- + Turbo-Mode bei Multireplace (ohne Screen-Update)
- Zeitvergleich: in Intuition.mod # -> * (zuvor * -> #)
- mrplc all 1 min 35 sek.
- mrplc turbo 17 sek.
- + NoScrUpdate
- + ArpSoure
- + RemBOL
- + ASCII
- - Toggle: AutoIndent (besser bei Bedarf über Indent/TabIndent)
- - Bugs dReformat
- - Bug: m-mmb ging nicht
- - viele kleine Bugs
- · MinWidth kann nich mehr unterschritten werden
- ^ PropGadget und WinHeight jetzt auch bei großen Fonts korrekt
- ^ PropGadget unter 2.0 im NewLook, unter 1.3 wie bisher
- ^ AprSave benutzt ASL-SaveReq (falls ASL vorhanden)
-
- V1.02b - 21 Oct 1991
- - Bug in ArpLoad (File/path-Split)
-
- V1.02 - 19 Oct 1991
- · ältere Release Notes gelöscht
-
-